Content displayed on a web page, while seemingly a cohesive collection of text, images and multimedia, is in fact a collection of often unrelated content cobbled together at the last second just prior to its display. While the primary content on a page (e.g., an article, game screen, or video) may be specific to the URL entered by the user, the rest of the page (often referred to as advertising real estate) is essentially left blank by the content provider. They then allow other entities such as advertising networks to identify and serve the “secondary” content. This secondary content usually consists of advertisements.
In the most simple form, a content publisher contracts with a single entity to provide the ads into their content, and the ads are managed by that single entity. However, this singular relationship is rarely the case. In practice, content publishers utilize numerous advertising networks, which in turn access ads from dozens of sources, including additional advertising networks. This creates a multi-tiered collection of advertisers which are far removed from the initial content publisher.
At the same time, content publishers, especially those that require or request that users provide personal information to view their content, are becoming more sensitive to their users' privacy concerns. Moreover, users are becoming increasingly aware that their personal information is being collected and used to determine the type of ads that are served into the content they are viewing. This is even more evident as the number of children that use the Internet on a daily basis increases. As a result, there exists a strong need to be able to accurately track and record the sources and functions of all the content that will presented to a user, regardless of how many “hops” it takes to find the ultimate source of that content.
Conventional approaches, such as those used in web development add-ons such as “Firebug” can reveal the elements that appear on a particular web page, but not how those elements appeared, i.e., which resource, or a chain of resources/events, caused a particular element to appear on the page. One main reason why the add-ons do not make these correlations is that it is difficult if not impossible, within all major web browsers, to ascertain these relations between the various resources loaded after their contents have been interpreted and applied by the browser. For example, after parsing a snippet that may change the contents of a web page, it can be difficult to determine in which locations the snippet caused the processor/browser to access and to load other resources, which in turn, may have loaded more resources, one of which ultimately altering an element of the web page. Therefore, systems and methods for identifying sources of the elements associated with a web page are needed.